home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / RGASM.RAR / ASMCODE.EXE / CHAPT1-5 / FLAGS.ASM < prev    next >
Encoding:
Assembly Source File  |  1993-05-10  |  2.8 KB  |  83 lines

  1. ;
  2. ; Program Flags ( Chapter 2 ) 
  3. ;
  4. Page 60,132
  5. .model small
  6. .code
  7. Begin:
  8. ;
  9. ;       PART 1 The effects on ZERO FLAG
  10. ;       ===============================
  11. ;
  12.         sub     ax,ax        ; Clear AX - Zero equals ZR
  13.         add     ax,1         ; Zero flag becomes NZ
  14.         add     ax,0FFFFh    ; Zero flag becomes ZR
  15.         add     ax,1         ; Zero flag becomes NZ again
  16. ;
  17. ;       PART 2 The effects on SIGN FLAG
  18. ;       ===============================
  19. ;
  20.         sub     ax,ax        ; Sign flag must be PL
  21.         sub     ax,1         ; Sign flag becomes NG
  22.         add     ax,2         ; Sign flag becomes PL
  23. ;
  24. ;     PART 3 The effects on CARRY FLAG (CF)
  25. ;     =====================================
  26. ;
  27.         sub     ax,ax        ; Clear AX - CF must be NC
  28.         mov     ax,0FFFFh    ; Carry flag is not affected
  29.         add     ax,1         ; Carry flag becomes CY
  30.         add     ax,0         ; Carry flag becomes NC
  31.         sub     ax,1         ; Carry flag becomes CY
  32. ;
  33. ;       PART 4 The effects on AUXILLARY CARRY FLAG
  34. ;       ==========================================
  35. ;
  36.         sub     ax,ax        ; Auxillary Carry gets NA
  37.         mov     ax,8         ; Flag is not affected
  38.         add     ax,8         ; Auxillary Carry gets AC
  39.         add     ax,0         ; Auxillary Carry gets NA
  40.         sub     ax,1         ; Auxillary Carry gets AC
  41. ;
  42. ;       PART 5 The effects on OVERFLOW FLAG
  43. ;       ===================================
  44. ;
  45.         sub     ax,ax        ; Overflow flag must be NV
  46. ;                            ;
  47. ;       Addition
  48. ;                            ;
  49.         mov     al,128       ; Overflow flag is not affected
  50.         add     al,128       ; Overflow flag becomes OV
  51. ;
  52. ;       Subtraction
  53. ;
  54.         sub     ax,ax        ; Overflow flag becomes NV
  55.         add     ax,8000h     ; Flag is not affected
  56.         sub     ax,7FFFh     ; Overflow flag becomes OV
  57. ;
  58. ;       Multiplication
  59. ;
  60.         sub     ax,ax        ; Overflow flag must be NO
  61.         mov     al,16        ; The first factor into AL
  62.         mov     bx,16        ; The second factor into BL (BH=0)
  63.         mul     bl           ; Product=256 in AX, Overflow flag is OV,
  64.                              ;   Carry flag = CY
  65. ;
  66. ;       PART 6 The effects on PARITY FLAG
  67. ;       =================================
  68. ;
  69.         sub     ax,ax        ; Parity flag must be PE
  70.         add     ax,1         ; Parity flag becomes PO
  71.         add     ax,10h       ; Parity flag becomes PE
  72.         add     ax,0100h     ; Parity flag unchanged
  73. ;
  74. ;       PART 7 Finishing the program
  75. ;       ============================
  76. ;
  77.         mov     ax,4C00h     ; AH - Dos service number,
  78.                              ; Al - Return code
  79.         int     21h          ; Dos service call
  80. .data
  81. .stack
  82.         end begin
  83.